package com.ailesson.user.service;

import com.ailesson.user.dto.UserInfoSimpleDto;
import com.ailesson.user.model.reply.UserInfoReply;
import com.ailesson.user.entity.UserInfoEntity;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ailesson.common.reply.PageResult;
import com.ailesson.user.model.req.UserInfoQueryReq;
import com.ailesson.user.model.req.UserInfoReq;
import me.chanjar.weixin.common.bean.WxOAuth2UserInfo;

import java.util.List;

/**
 * 用户表
 *
 * @author mac
 * @email mac@gmail.com
 * @date 2024-09-28 20:21:48
 */
public interface UserInfoService extends IService<UserInfoEntity> {

    /**
     * 分页查询
     * @param params
     * @return
     */
    PageResult queryPage(UserInfoQueryReq params);

    /**
     * 查询信息
     * @param id
     * @return
     */
    UserInfoReply info(Long id);

    /**
     * 更新信息
     * @param userInfo
     */
    void update(UserInfoReq userInfo);

    /**
     * 新增
     * @param userInfo
     */
    void add(UserInfoReq userInfo);

    List<UserInfoSimpleDto> batchSimple(List<Long> ids);

    UserInfoReply getOrSaveUserInfoOpenId(WxOAuth2UserInfo auth2UserInfo, String openId);
}

